ostree.git
8 days agoMerge version 2025.2-1+rpi1 and 2025.7-2 to produce 2025.7-2+rpi1 forky-staging archive/raspbian/2025.7-2+rpi1 raspbian/2025.7-2+rpi1
Raspbian automatic forward porter [Tue, 10 Feb 2026 21:43:56 +0000 (21:43 +0000)]
Merge version 2025.2-1+rpi1 and 2025.7-2 to produce 2025.7-2+rpi1

2 weeks agoMerge ostree (2025.7-2) import into refs/heads/workingbranch
Jeremy Bícha [Mon, 2 Feb 2026 04:22:51 +0000 (23:22 -0500)]
Merge ostree (2025.7-2) import into refs/heads/workingbranch

2 weeks agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

2 weeks agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch

2 weeks agoSkip test-pull-repeated during CI
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI

This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.

It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.

Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch

2 weeks agoostree (2025.7-2) unstable; urgency=medium
Jeremy Bícha [Mon, 2 Feb 2026 04:22:51 +0000 (23:22 -0500)]
ostree (2025.7-2) unstable; urgency=medium

  * Team upload
  * libostree-doc: Remove unnecessary Suggests: devhelp
  * Bump Standards Version to 4.7.3

[dgit import unpatched ostree 2025.7-2]

2 weeks agoImport ostree_2025.7-2.debian.tar.xz
Jeremy Bícha [Mon, 2 Feb 2026 04:22:51 +0000 (23:22 -0500)]
Import ostree_2025.7-2.debian.tar.xz

[dgit import tarball ostree 2025.7-2 ostree_2025.7-2.debian.tar.xz]

3 months agoMake fast forward from 2025.6-1
Simon McVittie [Mon, 17 Nov 2025 10:55:41 +0000 (10:55 +0000)]
Make fast forward from 2025.6-1

[dgit --quilt=gbp]

3 months agoImport ostree_2025.7.orig.tar.xz
Simon McVittie [Mon, 17 Nov 2025 10:55:41 +0000 (10:55 +0000)]
Import ostree_2025.7.orig.tar.xz

[dgit import orig ostree_2025.7.orig.tar.xz]

3 months agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

3 months agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch

3 months agoSkip test-pull-repeated during CI
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI

This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.

It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.

Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch

3 months agoRelease to unstable
Simon McVittie [Mon, 17 Nov 2025 10:55:49 +0000 (10:55 +0000)]
Release to unstable

3 months agoNew upstream release
Simon McVittie [Mon, 17 Nov 2025 10:30:01 +0000 (10:30 +0000)]
New upstream release

3 months agoUpdate upstream source from tag 'upstream/2025.7'
Simon McVittie [Mon, 17 Nov 2025 10:28:14 +0000 (10:28 +0000)]
Update upstream source from tag 'upstream/2025.7'

Update to upstream version '2025.7'
with Debian dir 64e45057c7770cd95b7a6c6019f2a8f18a5e22c8

3 months agoNew upstream version 2025.7
Simon McVittie [Mon, 17 Nov 2025 10:28:07 +0000 (10:28 +0000)]
New upstream version 2025.7

3 months agoRelease 2025.7
Joseph Marrero Corchado [Mon, 10 Nov 2025 19:23:43 +0000 (14:23 -0500)]
Release 2025.7

3 months agootcore-prepare-root: Fix formatting with clang-format
Joseph Marrero Corchado [Mon, 10 Nov 2025 19:21:56 +0000 (14:21 -0500)]
otcore-prepare-root: Fix formatting with clang-format

3 months agoMerge pull request #3549 from cgwalters/fix-missing-colon
Colin Walters [Thu, 6 Nov 2025 21:02:02 +0000 (16:02 -0500)]
Merge pull request #3549 from cgwalters/fix-missing-colon

Add missing `:` to the gtk-doc in a few places

3 months agoAdd missing `:` to the gtk-doc in a few places
Colin Walters [Thu, 6 Nov 2025 19:35:04 +0000 (14:35 -0500)]
Add missing `:` to the gtk-doc in a few places

This is SUCH a giant trap. I am not totally sure why it's
working for me in a fedora-42 build env, but it seems like
it may have broken in a different build environment in
https://github.com/ostreedev/ostree/pull/3548#discussion_r2500278890

I used Sonnet to audit for similar instances beyond
`read_blob` and it found some, fix those too.

Signed-off-by: Colin Walters <walters@verbum.org>
3 months agoMerge pull request #3537 from alyssais/formatting
Colin Walters [Tue, 4 Nov 2025 18:10:57 +0000 (13:10 -0500)]
Merge pull request #3537 from alyssais/formatting

docs: fix formatting

3 months agoMerge pull request #3540 from miabbott/doc_adapting_existing_fix
Colin Walters [Fri, 24 Oct 2025 20:47:56 +0000 (16:47 -0400)]
Merge pull request #3540 from miabbott/doc_adapting_existing_fix

docs: fixed dead link

3 months agodocs: fixed dead link
Micah Abbott [Wed, 22 Oct 2025 20:22:56 +0000 (16:22 -0400)]
docs: fixed dead link

Fixes: #3534
Signed-off-by: Micah Abbott <miabbott@redhat.com>
3 months agoMerge pull request #3538 from alexlarsson/signature-crash-fix
Colin Walters [Mon, 20 Oct 2025 14:05:16 +0000 (10:05 -0400)]
Merge pull request #3538 from alexlarsson/signature-crash-fix

prepare-root: Fix crash if no valid signatures

4 months agoprepare-root: Fix crash if no valid signatures
Alexander Larsson [Mon, 20 Oct 2025 10:26:50 +0000 (12:26 +0200)]
prepare-root: Fix crash if no valid signatures

We didn't set error if there were zero valid signatures, which caused
a crash prefixing the error. While fixing this, the error messages were
slightly reworded to make it nicer.

4 months agodocs: fix formatting
Alyssa Ross [Sun, 19 Oct 2025 14:49:02 +0000 (16:49 +0200)]
docs: fix formatting

4 months agoMerge pull request #3532 from ckyrouac/softreboot-fix
Colin Walters [Wed, 15 Oct 2025 14:10:36 +0000 (10:10 -0400)]
Merge pull request #3532 from ckyrouac/softreboot-fix

deploy: Use delete_if_present in can_soft_reboot

4 months agodeploy: Use delete_if_present in can_soft_reboot
ckyrouac [Wed, 8 Oct 2025 19:52:28 +0000 (15:52 -0400)]
deploy: Use delete_if_present in can_soft_reboot

This avoids a dump when trying to delete the ostree= karg if it isn't
present. This is an issue with bootc factory reset.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
4 months agoMerge pull request #3533 from champtar/fix-ci-stream
Colin Walters [Mon, 13 Oct 2025 15:36:00 +0000 (11:36 -0400)]
Merge pull request #3533 from champtar/fix-ci-stream

ci,Justfile: fix building with the right stream

4 months agoci,Justfile: fix building with the right stream
Etienne Champetier [Fri, 10 Oct 2025 22:26:53 +0000 (18:26 -0400)]
ci,Justfile: fix building with the right stream

Part of the `e2e (stream10)` was running stream9.

As `just` doesn't support named parameters yet,
use `STREAM` env var to select between stream9 and stream10

4 months agoMerge pull request #3531 from champtar/fix-ci-libsoup
Colin Walters [Wed, 8 Oct 2025 12:08:15 +0000 (08:08 -0400)]
Merge pull request #3531 from champtar/fix-ci-libsoup

ci: use libsoup 3 by default

4 months agoci: use libsoup 3 by default
Etienne Champetier [Wed, 8 Oct 2025 02:06:47 +0000 (22:06 -0400)]
ci: use libsoup 3 by default

libsoup-3.0-dev is present in all supported debian versions
libsoup2.4-dev is not present in testing anymore (forkie)

4 months agoRemove no longer used .lgtm.yml
Etienne Champetier [Wed, 8 Oct 2025 01:52:33 +0000 (21:52 -0400)]
Remove no longer used .lgtm.yml

4 months agoMerge pull request #3529 from cgwalters/rust-release
Colin Walters [Mon, 29 Sep 2025 14:30:30 +0000 (10:30 -0400)]
Merge pull request #3529 from cgwalters/rust-release

Rust release

4 months agorust: Release 0.20.5
Colin Walters [Mon, 29 Sep 2025 12:43:03 +0000 (14:43 +0200)]
rust: Release 0.20.5

Signed-off-by: Colin Walters <walters@verbum.org>
4 months agorust: Fix Rust 1.89 lifetime lint
Colin Walters [Mon, 29 Sep 2025 12:21:53 +0000 (14:21 +0200)]
rust: Fix Rust 1.89 lifetime lint

4 months agoMerge pull request #3527 from alexlarsson/fix-sign-bindings
Colin Walters [Fri, 26 Sep 2025 15:10:23 +0000 (11:10 -0400)]
Merge pull request #3527 from alexlarsson/fix-sign-bindings

Fix various things around signatures and their use in rust

4 months agorust: Regenerate and release 0.20.5
Alexander Larsson [Fri, 26 Sep 2025 13:37:50 +0000 (15:37 +0200)]
rust: Regenerate and release 0.20.5

This adds the new bindings for signing and composefs use.

4 months agorust-binding: Extend bindings to support composefs and signing
Alexander Larsson [Fri, 26 Sep 2025 08:02:59 +0000 (10:02 +0200)]
rust-binding: Extend bindings to support composefs and signing

This adds GLib.VariantDict, which is needed for
ostree_repo_commit_add_composefs_metadata(), and OSTree.BlobReader
which are needed for ostree_sign_read_sk().

With these we can sign ostree commits with composefs digests in them.

4 months agogir: Add (nullable) to ostree_blob_reader_read_blob return value
Alexander Larsson [Fri, 26 Sep 2025 11:24:41 +0000 (13:24 +0200)]
gir: Add (nullable) to ostree_blob_reader_read_blob return value

This adds api docs to ostree_blob_reader_read_blob() so that we
can mark the return value as nullable. This is needed, because
this function can return NULL without setting error, and this
needs to be handled in bindings (such as the rust ones).

4 months agoostree-sign.ed25519/spki: Fix double free in set_sk()
Alexander Larsson [Fri, 26 Sep 2025 13:12:16 +0000 (15:12 +0200)]
ostree-sign.ed25519/spki: Fix double free in set_sk()

When the gvariant is G_VARIANT_TYPE_BYTESTRING we need to duplicate
the data we get from g_variant_get_fixed_array(), otherwise we will
double-free it when we later free sign->secret_key.

4 months agoMerge pull request #3526 from lcook/status-index-json
Colin Walters [Sat, 20 Sep 2025 17:46:10 +0000 (13:46 -0400)]
Merge pull request #3526 from lcook/status-index-json

status: Include deployment index in JSON output

4 months agostatus: Include deployment index in JSON output
Lewis Cook [Sat, 20 Sep 2025 08:55:49 +0000 (09:55 +0100)]
status: Include deployment index in JSON output

5 months agoMerge pull request #3523 from alexlarsson/signed-composefs-with-bootc
Colin Walters [Thu, 18 Sep 2025 18:38:54 +0000 (14:38 -0400)]
Merge pull request #3523 from alexlarsson/signed-composefs-with-bootc

Support using composefs signatures also with bootc commits

5 months agoSupport using composefs signatures also with bootc commits
Alexander Larsson [Mon, 15 Sep 2025 09:33:16 +0000 (11:33 +0200)]
Support using composefs signatures also with bootc commits

When using bootc, if you convert a signed ostree commit into an OCI
image `rpm-ostree compose container-encapsulate` you end up with a new
commit that isn't signed. However, the base commit object, and its
commitmeta are still in the image and will end up the repo, and
since https://github.com/bootc-dev/bootc/pull/1600 the base commit
id is available as the parent commit.

So, we change ostree-prepare-root to fall back to using the base
commit+commitmeta to find the expected composefs digest if the main
commit is not signed.

Note: This will only work with ostree-only commits. If you have any
layered data, then the content will change, and the composefs digest
in the base commit will not match the deployed one. This is expected
with such sealed commits though. If you want to layer, either disable
sealing, or create a new sealed ostree commit for the new image.

5 months agoprepare-root: add allow_noent argument to load_variant
Alexander Larsson [Mon, 15 Sep 2025 08:04:59 +0000 (10:04 +0200)]
prepare-root: add allow_noent argument to load_variant

This is a minor preparation for a later change. Instead of
hand-rolling the G_FILE_ERROR_NOENT error check we add
a new allow_noent option.

Additionally, we move the handling of a no commitmeta being
an error to the caller of load_commit_for_deploy(), because
this check will be slightly more complex in the future.

5 months agoMerge pull request #3524 from jlebon/pr/state-overlays-exp
Colin Walters [Thu, 11 Sep 2025 23:20:11 +0000 (19:20 -0400)]
Merge pull request #3524 from jlebon/pr/state-overlays-exp

man/ostree-state-overlay: drop experimental but link to bootc docs

5 months agoman/ostree-state-overlay: drop experimental but link to bootc docs
Jonathan Lebon [Thu, 11 Sep 2025 19:28:34 +0000 (15:28 -0400)]
man/ostree-state-overlay: drop experimental but link to bootc docs

This has baked for long enough now so drop the experimental flag. But do
explain that symlinks are preferred and link to the bootc docs.

5 months agoRelease to unstable
Simon McVittie [Sun, 7 Sep 2025 16:22:06 +0000 (17:22 +0100)]
Release to unstable

5 months agoMake fast forward from 2025.5-1
Simon McVittie [Sun, 7 Sep 2025 16:21:45 +0000 (17:21 +0100)]
Make fast forward from 2025.5-1

[dgit --quilt=gbp]

5 months agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

5 months agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch

5 months agoSkip test-pull-repeated during CI
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI

This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.

It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.

Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch

5 months agod/ostree-boot.install: Be less specific about the filenames used
Simon McVittie [Sun, 7 Sep 2025 16:21:02 +0000 (17:21 +0100)]
d/ostree-boot.install: Be less specific about the filenames used

2025.6 changed the sequence number for the dracut hook.

5 months agoNew upstream release
Simon McVittie [Sun, 7 Sep 2025 14:37:35 +0000 (15:37 +0100)]
New upstream release

5 months agoUpdate upstream source from tag 'upstream/2025.6'
Simon McVittie [Sun, 7 Sep 2025 14:34:40 +0000 (15:34 +0100)]
Update upstream source from tag 'upstream/2025.6'

Update to upstream version '2025.6'
with Debian dir fdbcb63463ebd01087d1a6ab94748d2e6cdce8fc

5 months agoNew upstream version 2025.6
Simon McVittie [Sun, 7 Sep 2025 14:34:22 +0000 (15:34 +0100)]
New upstream version 2025.6

5 months agoMerge pull request #3521 from cgwalters/release
Colin Walters [Fri, 5 Sep 2025 21:12:54 +0000 (17:12 -0400)]
Merge pull request #3521 from cgwalters/release

Release 2025.6

5 months agoconfigure: post-release version bump
Colin Walters [Fri, 5 Sep 2025 19:20:40 +0000 (15:20 -0400)]
configure: post-release version bump

5 months agoRelease 2025.6
Colin Walters [Fri, 5 Sep 2025 19:19:33 +0000 (15:19 -0400)]
Release 2025.6

5 months agoMerge pull request #3518 from champtar/remove-mount-cycle
Colin Walters [Fri, 5 Sep 2025 18:46:20 +0000 (14:46 -0400)]
Merge pull request #3518 from champtar/remove-mount-cycle

Rework mounts to fix sysroot.mount umount

5 months agoRevert "Add ostree-shutdown.service: hide /sysroot and make /etc read-only"
Etienne Champetier [Wed, 3 Sep 2025 18:22:39 +0000 (14:22 -0400)]
Revert "Add ostree-shutdown.service: hide /sysroot and make /etc read-only"

Instead of adding a shutdown service, we rework how we create the mounts.
After the 2 previous commits, sysroot.mount umount works, and
systemd-shutdown will take care of remounting etc.mount read-only and
calling sync() as needed.

This reverts commit d0c454c23637dceda6d7395dd2141b564e3efa47.

5 months agoostree-soft-reboot: fix sysroot.mount umount
Etienne Champetier [Wed, 3 Sep 2025 18:12:27 +0000 (14:12 -0400)]
ostree-soft-reboot: fix sysroot.mount umount

The composefs at /run/nextboot uses /sysroot, so systemd fails to
umount sysroot.mount during soft-reboot.
Create a temporary bind-mount, use it to prepare /run/nextboot
and MNT_DETACH it when we are done.

5 months agoostree-prepare-root: avoid mount cycle
Etienne Champetier [Tue, 2 Sep 2025 21:33:00 +0000 (17:33 -0400)]
ostree-prepare-root: avoid mount cycle

Moving the physical root at /sysroot, we end up
with a mount cycle between / and /sysroot, forcing us to use
MS_DETACH during shutdown (d0c454c23637dceda6d7395dd2141b564e3efa47).

We can replace ostree-shutdown.service by reworking how we mount
/sysroot, in short use MS_BIND instead of MS_MOVE.

5 months agoMerge pull request #3517 from jozzsi/3495
Colin Walters [Thu, 4 Sep 2025 12:13:57 +0000 (08:13 -0400)]
Merge pull request #3517 from jozzsi/3495

Move dracut module from 98 ordering to the recommended 50 ordering

5 months agoMove dracut module from 98 ordering to the recommended 50 ordering
Jo Zzsi [Sun, 31 Aug 2025 04:56:10 +0000 (00:56 -0400)]
Move dracut module from 98 ordering to the recommended 50 ordering

In dracut release v108 or later the recommended ordering for out
out of tree modules is 50. The following is a section from dracut
documentation:

> Not using the 50-59 range for out of tree dracut modules will likely
> lead to unintended errors in the initramfs generation process as your
> dracut module will either run too early or too late in the generation process.
> You have been warned.

Fixes: https://github.com/ostreedev/ostree/issues/3495
5 months agoRelease to unstable
Simon McVittie [Sat, 30 Aug 2025 10:11:23 +0000 (11:11 +0100)]
Release to unstable

5 months agoMake fast forward from 2025.4-1
Simon McVittie [Sat, 30 Aug 2025 10:11:13 +0000 (11:11 +0100)]
Make fast forward from 2025.4-1

[dgit --quilt=gbp]

5 months agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

5 months agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch

5 months agoSkip test-pull-repeated during CI
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI

This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.

It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.

Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch

5 months agoNew upstream release
Simon McVittie [Sat, 30 Aug 2025 09:47:13 +0000 (10:47 +0100)]
New upstream release

5 months agoUpdate upstream source from tag 'upstream/2025.5'
Simon McVittie [Sat, 30 Aug 2025 09:44:29 +0000 (10:44 +0100)]
Update upstream source from tag 'upstream/2025.5'

Update to upstream version '2025.5'
with Debian dir 6f585d662f98f8633865ca5af1811d1ba89cdee0

5 months agoNew upstream version 2025.5
Simon McVittie [Sat, 30 Aug 2025 09:44:21 +0000 (10:44 +0100)]
New upstream version 2025.5

5 months agoMerge pull request #3516 from cgwalters/remount-shutdown
Etienne Champetier [Fri, 29 Aug 2025 22:27:38 +0000 (18:27 -0400)]
Merge pull request #3516 from cgwalters/remount-shutdown

Add ostree-shutdown.service: hide /sysroot and make /etc read-only

5 months agoAdd ostree-shutdown.service: hide /sysroot and make /etc read-only
Colin Walters [Thu, 28 Aug 2025 17:53:14 +0000 (13:53 -0400)]
Add ostree-shutdown.service: hide /sysroot and make /etc read-only

We have a lot of bind mounts; these are usually set up in the initramfs.
So far during shutdown we've let systemd just try to sort things out
via auto-generated mount units i.e. `sysroot.mount` and `etc.mount`
and so on.

systemd has some special casing for `-.mount` (i.e. `/`) and `etc.mount`
https://github.com/systemd/systemd/blob/e91bfad241799b449df73efc30d833b9c5937001/src/shared/fstab-util.c#L72

However it doesn't special case `/sysroot` - which is currently
an ostree-specific invention (when used in the real root).
We cannot actually unmount `/sysroot` while it's in use, and it
is because `/etc` is a bind mount into it. And we can't tear
down `/etc` because it's just expected that e.g. pid 1 and other
things hold open references to it - until things finally
transition into systemd-shutdown.

What we can do though is explicitly detach it during the shutdown
phase; this ensures that systemd won't try to clean it up then,
suppressing errors about its inability to do so.

While we're here, let's also remount `/etc` read-only; while
systemd itself will try to do so during systemd-shutdown.
Per comments if this service fails, it's a bug in something
else to be fixed.

Closes: https://github.com/ostreedev/ostree/issues/3513
Signed-off-by: Colin Walters <walters@verbum.org>
5 months agoMerge pull request #3515 from HastD/xattrs-double-free
Colin Walters [Fri, 29 Aug 2025 20:07:17 +0000 (16:07 -0400)]
Merge pull request #3515 from HastD/xattrs-double-free

fix: double free in checkout_tree_at_recurse

5 months agofix: double free in checkout_tree_at_recurse
Daniel Hast [Fri, 29 Aug 2025 18:17:15 +0000 (14:17 -0400)]
fix: double free in checkout_tree_at_recurse

Both `xattrs` and `modified_xattrs` are declared with `g_autoptr`, but
`xattrs` is later simply assigned to be equal to `modified_xattrs`,
meaning the automatic cleanup is a double-free.

This is fixed by instead using `g_steal_pointer` to assign the old value
of `xattrs` to a temporary variable, which is used to create the new
value.

I believe this is the cause of issue #3303, and this should fix #3303.
(I can consistently reproduce the issue by attempting to deploy a
rechunked image with bootc, and with this patch, the issue no longer
occurs and the deployment succeeds.)

Signed-off-by: Daniel Hast <hast.daniel@protonmail.com>
5 months agoMerge pull request #3514 from cgwalters/finalize-needs-etc
Etienne Champetier [Wed, 27 Aug 2025 17:25:17 +0000 (13:25 -0400)]
Merge pull request #3514 from cgwalters/finalize-needs-etc

ostree-finalize-staged.service: RequiresMountsFor=/etc

5 months agoostree-finalize-staged.service: RequiresMountsFor=/etc
Colin Walters [Wed, 27 Aug 2025 14:38:11 +0000 (10:38 -0400)]
ostree-finalize-staged.service: RequiresMountsFor=/etc

I've seen in some cases systemd try to unmount /etc quite early
and then fail because it's in use.

It's confusing because I don't see this in all scenarios.
But regardless, in the situations where it does occur,
this fixes it.

Signed-off-by: Colin Walters <walters@verbum.org>
5 months agoMerge pull request #3512 from champtar/OSTREE_SUPPRESS_SYNCFS
Colin Walters [Tue, 26 Aug 2025 15:00:12 +0000 (11:00 -0400)]
Merge pull request #3512 from champtar/OSTREE_SUPPRESS_SYNCFS

libostree: remove OSTREE_SUPPRESS_SYNCFS

5 months agolibostree: remove OSTREE_SUPPRESS_SYNCFS
Etienne Champetier [Tue, 26 Aug 2025 13:10:21 +0000 (09:10 -0400)]
libostree: remove OSTREE_SUPPRESS_SYNCFS

This workaround was needed for the old valgrind version in EL 7

5 months agoMerge pull request #3509 from cgwalters/sysroot-sync-repo
Colin Walters [Mon, 25 Aug 2025 21:01:05 +0000 (17:01 -0400)]
Merge pull request #3509 from cgwalters/sysroot-sync-repo

Deduplicate repo+sysroot syncfs logic

5 months agoMerge pull request #3510 from cgwalters/release
Colin Walters [Mon, 25 Aug 2025 15:07:26 +0000 (11:07 -0400)]
Merge pull request #3510 from cgwalters/release

Release 2025.5

5 months agoDeduplicate repo+sysroot syncfs logic
Colin Walters [Thu, 21 Aug 2025 09:57:03 +0000 (11:57 +0200)]
Deduplicate repo+sysroot syncfs logic

This is a followup to https://github.com/ostreedev/ostree/pull/3504/commits/6e5a27a29d33d50a2a4380c406405435d919b6b4
which I believe is correct as is. However, we already have a file
descriptor open for the ostree repo, which *must* be on
the same filesystem as `/sysroot/ostree` (the deployment
code forces hardlinking today).

It's hence cleaner to reuse that extant fd instead of opening
a new one - we know we did writes to that fd.

But going farther here, there already is logic to use syncfs
for the repo when downloading objects (in a common case
we actually syncfs twice).

Since these are really the same operation, unify them:

- Add journaling to the repo one syncfs case
- Change the sysroot case to just call it
- Since we log consistently to the journal for all syncfs/fsfreeze
  operations now, drop the SyncStats bits which was a way
  to add info about that to a later journal message

Additionally, let's add an extra check when we're
opening the repo that it's on the same device just on general
principle.

Signed-off-by: Colin Walters <walters@verbum.org>
5 months agoconfigure: Post-release version bump
Colin Walters [Mon, 25 Aug 2025 12:49:34 +0000 (08:49 -0400)]
configure: Post-release version bump

Signed-off-by: Colin Walters <walters@verbum.org>
5 months agoRelease 2025.5
Colin Walters [Mon, 25 Aug 2025 12:46:57 +0000 (08:46 -0400)]
Release 2025.5

Signed-off-by: Colin Walters <walters@verbum.org>
5 months agoMerge pull request #3507 from cgwalters/aboot-chdir
Joseph Marrero Corchado [Thu, 21 Aug 2025 16:08:02 +0000 (12:08 -0400)]
Merge pull request #3507 from cgwalters/aboot-chdir

aboot: Use fd and not absolute path

5 months agoMerge pull request #3508 from cgwalters/switchroot-journal
Joseph Marrero Corchado [Thu, 21 Aug 2025 14:04:48 +0000 (10:04 -0400)]
Merge pull request #3508 from cgwalters/switchroot-journal

prepare-root: Log to journal, not stdout

5 months agoprepare-root: Log to journal, not stdout
Colin Walters [Wed, 20 Aug 2025 13:51:10 +0000 (15:51 +0200)]
prepare-root: Log to journal, not stdout

Since this can now be used as part of the shared library for
soft reboots, we shouldn't have a library write to stdout.
I noticed this in bootc. Use the journal instead.

Signed-off-by: Colin Walters <walters@verbum.org>
6 months agoaboot: Use fd and not absolute path
Colin Walters [Tue, 19 Aug 2025 13:16:35 +0000 (15:16 +0200)]
aboot: Use fd and not absolute path

Motivated by https://github.com/bootc-dev/bootc/pull/1532/commits/6d2eb2aaa92e23f434c47e3d0ebadc0307d45289

(We need to have a shared helper for this stuff at some point)

6 months agoMerge pull request #3506 from cgwalters/adapt-cosa
Colin Walters [Tue, 19 Aug 2025 13:10:24 +0000 (15:10 +0200)]
Merge pull request #3506 from cgwalters/adapt-cosa

ci: Adapt to cosa change

6 months agoci: Adapt to cosa change
Colin Walters [Tue, 19 Aug 2025 09:47:53 +0000 (11:47 +0200)]
ci: Adapt to cosa change

It seems to have stopped building qemu by default.

Signed-off-by: Colin Walters <walters@verbum.org>
6 months agoMerge pull request #3504 from champtar/syncfs-ostree
Colin Walters [Tue, 19 Aug 2025 07:10:29 +0000 (09:10 +0200)]
Merge pull request #3504 from champtar/syncfs-ostree

deploy: call syncfs() for /ostree instead of /

6 months agodeploy: call syncfs() for /ostree instead of /
Etienne Champetier [Mon, 18 Aug 2025 21:41:37 +0000 (17:41 -0400)]
deploy: call syncfs() for /ostree instead of /

In full_system_sync we were calling syncfs(/) expecting
all the recent modification in /ostree to be synced to disk.
With / now being composefs, syncfs(/) is a noop, so call
syncfs(/ostree) as that is what we really want.

6 months agoNormalize formatting with debputy
Simon McVittie [Thu, 14 Aug 2025 23:04:49 +0000 (00:04 +0100)]
Normalize formatting with debputy

6 months agoRelease to unstable
Simon McVittie [Thu, 14 Aug 2025 19:12:41 +0000 (20:12 +0100)]
Release to unstable

6 months agoDeclare fast forward from 2025.2-1
Simon McVittie [Thu, 14 Aug 2025 19:12:13 +0000 (20:12 +0100)]
Declare fast forward from 2025.2-1

[dgit --quilt=unapplied --overwrite]

6 months agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

6 months agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch